package com.example.empleemanagesystem.service;

import com.example.empleemanagesystem.entity.User;
import com.example.empleemanagesystem.vo.UserVO;
import org.springframework.lang.NonNull;

import java.util.List;
import java.util.Optional;

public interface UserService {
    /**
     * 获取所有用户信息
     *
     * @return 用户视图对象列表
     */
    List<UserVO> findAll();

    /**
     * 通过用户名获取账户
     *
     * @param username 用户名
     * @return 包含用户信息的Optional对象
     */
    Optional<User> getByUsername(@NonNull String username);

    /**
     * 创建用户账户
     *
     * @param userVO 用户视图对象
     * @return 创建成功返回true，否则返回false
     */
    boolean create(@NonNull UserVO userVO);

    /**
     * 通过用户ID获取用户信息
     *
     * @param id 用户ID
     * @return 用户对象
     */
    User getById(@NonNull Long id);
}